home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-11-05 | 2.0 KB | 72 lines | [TEXT/MPS ] |
- #
- # edprocs.tcl --
- #
- # Tools for Tcl developers. Procedures to save procs to a file and to edit
- # a proc in memory.
- #------------------------------------------------------------------------------
- # Copyright 1992-1993 Karl Lehenbauer and Mark Diekhans.
- #
- # Permission to use, copy, modify, and distribute this software and its
- # documentation for any purpose and without fee is hereby granted, provided
- # that the above copyright notice appear in all copies. Karl Lehenbauer and
- # Mark Diekhans make no representations about the suitability of this
- # software for any purpose. It is provided "as is" without express or
- # implied warranty.
- #------------------------------------------------------------------------------
- # $Id: edprocs.tcl,v 2.1 1993/04/07 02:42:32 markd Exp $
- #------------------------------------------------------------------------------
- #
-
- #@package: TclX-developer_utils saveprocs edprocs
-
- proc saveprocs {fileName args} {
- set fp [open $fileName w]
- puts $fp "# tcl procs saved on [fmtclock [getclock]]\n"
- puts $fp [eval "showprocs $args"]
- close $fp
- }
-
- proc edprocs {args} {
- global env
-
- if [info exists env(HOME)] {
- set tmpFilename "$env(HOME):tcldev.[format "%08lX" [now]]"
- } else {
- set tmpFilename ":tmp:tcldev.[format "%08lX" [now]]"
- }
-
- set fp [open $tmpFilename w]
- puts $fp "#"
- puts $fp "# This is a temporary working file."
- puts $fp "# This file is not automatically deleted."
- puts $fp "#"
- puts $fp [eval "showprocs $args"]
- close $fp
-
- if {[info globals TICKLE] != ""} {
- open_file_window $tmpFilename local
- } else {
- if {[info globals MACINTOSH]} {
- puts stdout "Procedures written to file \"$tmpFilename\""
- } else {
- if [info exists env(EDITOR)] {
- set editor $env(EDITOR)
- } else {
- set editor vi
- }
-
- set startMtime [file mtime $tmpFilename]
- system "$editor $tmpFilename"
-
- if {[file mtime $tmpFilename] != $startMtime} {
- source $tmpFilename
- echo "Procedures were reloaded."
- } else {
- echo "No changes were made."
- }
- unlink $tmpFilename
- }
- }
- return
- }
-